/*
 * Copyright (c) 2024 Huawei Technologies Co., Ltd.
 * This file is a part of the CANN Open Software.
 * Licensed under CANN Open Software License Agreement Version 1.0 (the "License").
 * Please refer to the License for details. You may not use this file except in compliance with the License.
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
 * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
 * See LICENSE in the root of the software repository for the full text of the License.
 */
#ifndef ATB_RUNNERTYPE_H
#define ATB_RUNNERTYPE_H

namespace atb {
enum RunnerType : int {
    RUNNER_TYPE_UNDEFINED = -1,
    RUNNER_TYPE_ADD = 0,
    RUNNER_TYPE_ACTIVATION,
    RUNNER_TYPE_ASSTRIDED,
    RUNNER_TYPE_CONCAT,
    RUNNER_TYPE_CUMSUM,
    RUNNER_TYPE_DYNAMICNTK,
    RUNNER_TYPE_ELEWISE,
    RUNNER_TYPE_GATHER,
    RUNNER_TYPE_LINEAR,
    RUNNER_TYPE_MATMUL,
    RUNNER_TYPE_MLP,
    RUNNER_TYPE_NORM,
    RUNNER_TYPE_ROPE,
    RUNNER_TYPE_RMS_NORM,
    RUNNER_TYPE_MLP_QUANT,
    RUNNER_TYPE_SELF_ATTENTION,
    RUNNER_TYPE_TRANSPOSE,
    RUNNER_TYPE_LINEAR_QUANT,
    RUNNER_TYPE_ALL_REDUCE,
    RUNNER_TYPE_ALL_GATHER,
    RUNNER_TYPE_BROADCAST,
    RUNNER_TYPE_REDUCE_SCATTER,
    RUNNER_TYPE_BARRIER,
    RUNNER_TYPE_SPLIT,
    RUNNER_TYPE_LAYER_NORM,
    RUNNER_TYPE_KV_CACHE,
    RUNNER_TYPE_MULTINOMIAL,
    RUNNER_TYPE_SLICE,
    RUNNER_TYPE_SOFTMAX,
    RUNNER_TYPE_LINEAR_ACTIVATION,
    RUNNER_TYPE_LINEAR_ACTIVATION_QUANT,
    RUNNER_TYPE_TRANSDATA,
    RUNNER_TYPE_WHERE,
    RUNNER_TYPE_FILL,
    RUNNER_TYPE_REPEAT,
    RUNNER_TYPE_SET_VALUE,
    RUNNER_TYPE_PAGED_ATTENTION,
    RUNNER_TYPE_RESHAPE_AND_CACHE,
    RUNNER_TYPE_REDUCE,
    RUNNER_TYPE_TOPP,
    RUNNER_TYPE_SORT,
    RUNNER_TYPE_LINEAR_SPARSE,
    RUNNER_TYPE_PAD,
    RUNNER_TYPE_UNPAD,
    RUNNER_TYPE_FASTSOFTMAX,
    RUNNER_TYPE_FASTSOFTMAXGRAD,
    RUNNER_TYPE_GENATTENTIONMASK,
    RUNNER_TYPE_ROPE_GRAD,
    RUNNER_TYPE_STRIDEDBATCHMATMUL,
    RUNNER_TYPE_UNPAD_WITH_HIDDEN_STATE,
    RUNNER_TYPE_PAD_WITH_HIDDEN_STATE,
    RUNNER_TYPE_RMS_NORM_BACKWARD,
    RUNNER_TYPE_NONZERO,
    RUNNER_TYPE_ONEHOT,
    RUNNER_TYPE_INDEXADD,
    RUNNER_TYPE_LINEAR_PARALLEL,
    RUNNER_TYPE_GATING,
    RUNNER_TYPE_SEND,
    RUNNER_TYPE_RECV,
    RUNNER_TYPE_SELF_ATTENTION_PA_ENCODER,
    RUNNER_TYPE_SELF_ATTENTION_KV_BYPASS,
    RUNNER_TYPE_ALL_TO_ALL,
    RUNNER_TYPE_ALL_TO_ALLV,
    RUNNER_TYPE_SELF_ATTENTION_KV_BYPASS_BNSD,
    RUNNER_TYPE_LASER_ATTENTION,
    RUNNER_TYPE_LASER_ATTENTION_GRAD,
    RUNNER_TYPE_GROUP_TOPK,
    RUNNER_TYPE_RESHAPE_AND_CACHE_SISO,
    RUNNER_TYPE_GROUPED_MATMUL_WITH_ROUTING,
    RUNNER_TYPE_BLOCK_COPY,
    RUNNER_TYPE_GROUPED_MATMUL_INPLACE_ADD,
    RUNNER_TYPE_RELAY_ATTENTION,
    RUNNER_TYPE_COHERE_LAYER_NORM,
    RUNNER_TYPE_SELF_ATTENTION_PREFIX_ENCODER,
    RUNNER_TYPE_GATHER_PRE_RMS_NORM,
    RUNNER_TYPE_REDUCE_SCATTERV,
    RUNNER_TYPE_ALL_GATHERV,
    RUNNER_TYPE_ALL_TO_ALLVV2,
    RUNNER_TYPE_SWIGLU_QUANT,
    RUNNER_TYPE_NORM_ROPE_RESHAPE,
    RUNNER_TYPE_ROPE_Q_CONCAT,
    RUNNER_TYPE_FUSED_ADD_TOPK_DIV,
    RUNNER_TYPE_MLAPREPROCESS,
    RUNNER_TYPE_MLAPREPROCESS_SPLIT,
    RUNNER_TYPE_MULTILATENTATTENTION,
    RUNNER_TYPE_RESHAPE_AND_CACHE_OMNI,
    RUNNER_TYPE_RESHAPE_AND_CACHE_WITH_STRIDE,
    RUNNER_TYPE_RESHAPE_AND_CACHE_WITH_STRIDE_SISO,
    RUNNER_TYPE_LAYER_NORM_WITH_STRIDE,
    RUNNER_TYPE_RMS_NORM_WITH_STRIDE,
    RUNNER_TYPE_RAZOR_FUSION_ATTENTION,
    RUNNER_TYPE_FAUPDATE,
    RUNNER_TYPE_PAGED_CACHE_LOAD,
    RUNNER_TYPE_GMM_DEQ_SWIGLU_QUANT_GMM_DEQ,
    RUNNER_TYPE_MM_DEQ_SWIGLU_QUANT_MM_DEQ,
    RUNNER_TYPE_RING_MLA,
    RUNNER_TYPE_MLA_PREPROCESS_ACLNN,
    RUNNER_TYPE_MAX,
};
} // namespace atb
#endif
